<?php

namespace api\models;



class ApiUpload extends ApiBase
{
    const SCENARIO_UPLOAD = 'upload';


    public $file;             //用来保存文件
    public $isSave;           //是否保存到本地




    /**
     * @inheritdoc
     */
    public function scenarios()
    {
        return [
            self::SCENARIO_UPLOAD => ['file','isSave'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['file'],'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, png, gif', 'on'=>[self::SCENARIO_UPLOAD]],
            ['isSave', 'default', 'value' => 0],

        ];
    }

    public function upload()
    {
        if($this->validate()){
            $uploadPath = dirname(dirname(__FILE__)).'/web/uploads/';  // 取得上传路径
            if (!file_exists($uploadPath)) {
                @mkdir($uploadPath, 0777, true);
            }
            $ext = $this->file->getExtension();                 // 获取文件的扩展名
            $randnums = $this->getrandnums();                   // 生成一个随机数，为了重命名文件
            $imageName = date("YmdHis").$randnums.'.'.$ext;     // 重命名文件
            $ossfile = 'banner/'.$imageName;                    // 这里是保存到阿里云oss的文件名和路径。如果只有文件名，就会放到空间的根目录下。
            $filePath = $uploadPath.$imageName;                 // 生成文件的绝对路径
            $this->file->saveAs($filePath);
            var_dump( $this->file);die;
        }else{
            $error=self::getModelError($this);
            var_dump($error);
        }

    }


    /**
     * 生成随机数
     * @return string 随机数
     */
    protected function getrandnums()
    {
        $arr = array();
        while (count($arr) < 10) {
            $arr[] = rand(1, 10);
            $arr = array_unique($arr);
        }
        return implode("", $arr);
    }



}

?>